#ifndef NEW_HPP
#define NEW_HPP

#if not __STDC_HOSTED__

void* operator new(size_t size);
void* operator new[](size_t size);
void operator delete(void* address);
void operator delete[](void* address);
void operator delete(void* address, size_t size);
void operator delete[](void* address, size_t size);

#endif 
inline void* operator new(size_t size, void* address) noexcept;
inline void* operator new[](size_t size, void* address) noexcept;
inline void operator delete(void* address, void*) noexcept;
inline void operator delete[](void* address, void*) noexcept;

#if not __STDC_HOSTED__

inline void* operator new(size_t, void* address) noexcept
{
	return address;
}

inline void* operator new[](size_t, void* address) noexcept
{
	return address;
}

inline void operator delete(void*, void*) noexcept
{
}

inline void operator delete[](void*, void*) noexcept
{
}

#endif

#endif
